/*      */ package dm.jdbc.driver;
/*      */ 
/*      */ import dm.jdbc.dataConvertion.Convertion;
/*      */ import dm.jdbc.dbaccess.Const;
/*      */ import dm.jdbc.dbaccess.DBError;
/*      */ import dm.jdbc.desc.ColumnDesc;
/*      */ import dm.jdbc.desc.GlobalControlCfg;
/*      */ import dm.jdbc.innerData.DmdbExecOpt;
/*      */ import dm.jdbc.rsCache.DmdbCachedResultSetPool;
/*      */ import dm.jdbc.util.StringUtil;
/*      */ import java.sql.Connection;
/*      */ import java.sql.ResultSet;
/*      */ import java.sql.SQLException;
/*      */ import java.sql.SQLWarning;
/*      */ import java.sql.Statement;
/*      */ import java.util.ArrayList;
/*      */ import java.util.ResourceBundle;
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ public class DmdbStatement_bs
/*      */   implements Statement
/*      */ {
/*      */   public static final int STATEMENT = 0;
/*      */   public static final int PREPARED_STATEMENT = 1;
/*      */   public static final int CALLABLE_STATEMENT = 2;
/*      */   public static final int STATICPREPARED_STATEMENT = 3;
/*      */   protected int handle;
/*      */   protected DmdbConnection_bs connection;
/*      */   protected DmdbInfo dbInfo;
/*   81 */   DmdbResultSetCache rsCache = null;
/*      */   
/*      */   public DmdbResultSetCache getRsCache()
/*      */   {
/*   85 */     return this.rsCache;
/*      */   }
/*      */   
/*      */   public void setRsCache(DmdbResultSetCache cache)
/*      */   {
/*   90 */     this.rsCache = cache;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*   96 */   DmdbResultSet_bs currentRs = null;
/*      */   
/*   98 */   ArrayList resultsList = null;
/*      */   
/*  100 */   short resId = 0;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*  105 */   protected String m_insertTableName = "";
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */   protected int resultSetConcurrency;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */   protected int resultSetType;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */   protected int resultSetHoldability;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */   boolean process_escapes;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */   protected int m_queryTimeout;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */   int max_field_size;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */   int maxRows;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */   int row_prefetch;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*  150 */   public boolean closed = true;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */   int fetch_direction;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */   SQLWarning m_warnings;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*  165 */   ArrayList m_batchItems = null;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */   String cursorName;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */   public long cursorUpdateRow;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*  180 */   boolean fromRowSetFlag = false;
/*      */   
/*  182 */   int type = 0;
/*      */   
/*  184 */   int m_putLobData = 1;
/*      */   
/*  186 */   protected String originalSql = null;
/*      */   
/*  188 */   protected long[] m_TbIds = null;
/*      */   
/*  190 */   protected long[] m_TbTss = null;
/*      */   
/*  192 */   private int executeId = -1;
/*      */   
/*  194 */   private boolean m_ExecOpt = false;
/*      */   
/*  196 */   protected boolean m_autoGenKeys = false;
/*      */   
/*  198 */   private long[] m_retIds = null;
/*      */   
/*      */ 
/*      */ 
/*      */   private boolean readBaseColName;
/*      */   
/*      */ 
/*  205 */   private boolean m_execfromStanbdy = false;
/*      */   
/*      */   public void setFromStandby(boolean standby)
/*      */   {
/*  209 */     this.m_execfromStanbdy = standby;
/*      */   }
/*      */   
/*      */   public boolean getFromStandby()
/*      */   {
/*  214 */     return this.m_execfromStanbdy;
/*      */   }
/*      */   
/*      */   public final void setRetIds(long[] retIds)
/*      */   {
/*  219 */     int len = retIds.length;
/*      */     
/*  221 */     if ((retIds == null) || (retIds.length == 0)) {
/*  222 */       return;
/*      */     }
/*  224 */     this.m_retIds = new long[len];
/*  225 */     System.arraycopy(retIds, 0, this.m_retIds, 0, len);
/*      */   }
/*      */   
/*      */   public void setExecuteId(int id)
/*      */   {
/*  230 */     this.executeId = id;
/*      */   }
/*      */   
/*      */   public int getExecuteId()
/*      */   {
/*  235 */     return this.executeId;
/*      */   }
/*      */   
/*      */   public long getRowId()
/*      */   {
/*  240 */     if (this.dbInfo != null) {
/*  241 */       return this.dbInfo.getRowId();
/*      */     }
/*  243 */     return -1L;
/*      */   }
/*      */   
/*      */   public void setTbsId_Ts(long[] ids, long[] tss)
/*      */   {
/*  248 */     this.m_TbIds = ((long[])ids.clone());
/*  249 */     this.m_TbTss = ((long[])tss.clone());
/*      */   }
/*      */   
/*      */ 
/*      */   public DmdbInfo getDmdbInfo()
/*      */   {
/*  255 */     if (this.dbInfo == null) {
/*  256 */       this.dbInfo = new DmdbInfo();
/*      */     }
/*  258 */     return this.dbInfo;
/*      */   }
/*      */   
/*      */   public DmdbInfo getDmdbInfoNRS()
/*      */   {
/*  263 */     if (this.dbInfo != null)
/*      */     {
/*  265 */       this.dbInfo.setHasResultSet(false);
/*  266 */       this.dbInfo.setSavepointFlag(false);
/*      */     }
/*      */     
/*      */ 
/*  270 */     this.m_retIds = null;
/*      */     
/*  272 */     return getDmdbInfo();
/*      */   }
/*      */   
/*      */   public boolean fromRowSetFlag()
/*      */   {
/*  277 */     return this.fromRowSetFlag;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */   void initializeState()
/*      */     throws SQLException
/*      */   {
/*  285 */     this.m_ExecOpt = this.connection.getConstParaOpt();
/*  286 */     this.resultSetConcurrency = 1007;
/*  287 */     this.resultSetType = 1003;
/*  288 */     this.resultSetHoldability = this.connection.getHoldability();
/*  289 */     this.process_escapes = this.connection.getEscapesProcessing();
/*  290 */     this.m_queryTimeout = 0;
/*  291 */     this.max_field_size = 0;
/*  292 */     this.maxRows = this.connection.getMaxRows();
/*  293 */     this.row_prefetch = this.connection.getDefaultRowPrefetch();
/*  294 */     this.fetch_direction = 1000;
/*  295 */     this.m_warnings = null;
/*  296 */     this.m_batchItems = null;
/*  297 */     this.resultsList = new ArrayList(3);
/*      */     
/*  299 */     this.handle = DmdbCSI.allocStmtHandle(this);
/*      */     
/*      */ 
/*      */ 
/*  303 */     long ttt = this.handle;
/*  304 */     if (this.handle < 0)
/*      */     {
/*  306 */       ttt = 0xFFFFFFFF & ttt;
/*      */     }
/*      */     
/*  309 */     this.cursorName = ("DM7CUR" + ttt);
/*  310 */     this.type = 0;
/*      */     
/*  312 */     this.closed = false;
/*      */   }
/*      */   
/*      */   public void initializeReuseStmt(DmdbConnection_bs conn) throws SQLException
/*      */   {
/*  317 */     this.closed = false;
/*      */   }
/*      */   
/*      */   public DmdbStatement_bs(DmdbConnection_bs conn) throws SQLException
/*      */   {
/*  322 */     this.connection = conn;
/*  323 */     initializeState();
/*      */   }
/*      */   
/*      */   public DmdbStatement_bs(DmdbConnection_bs conn, int resultSetType, int resultSetConcurrency, int resultSetHoldability)
/*      */     throws SQLException
/*      */   {
/*  329 */     this(conn);
/*  330 */     this.resultSetType = resultSetType;
/*  331 */     this.resultSetConcurrency = resultSetConcurrency;
/*  332 */     this.resultSetHoldability = resultSetHoldability;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public synchronized ResultSet executeQuery(String sql)
/*      */     throws SQLException
/*      */   {
/*  349 */     if (Const.TRACE_LEVEL > 0) {
/*  350 */       DmdbLog.trace(this, "executeQuery(String)", sql);
/*      */     }
/*  352 */     executeInner(sql, 2);
/*      */     
/*  354 */     return this.currentRs;
/*      */   }
/*      */   
/*      */   public synchronized ResultSet executeQuery(String sql, int flag)
/*      */     throws SQLException
/*      */   {
/*  360 */     if (Const.TRACE_LEVEL > 0) {
/*  361 */       DmdbLog.trace(this, "executeQuery(String, int)", "sql is " + sql + ", flag = " + flag);
/*      */     }
/*      */     
/*      */ 
/*  365 */     checkClosed();
/*      */     
/*  367 */     clearWarnings();
/*  368 */     checkNullOrEmpty(sql);
/*      */     
/*  370 */     sql = this.connection.nativeSQL(sql, this.process_escapes);
/*      */     
/*  372 */     this.originalSql = sql;
/*      */     
/*  374 */     DmdbConnection_bs.execSqlNum += 1;
/*      */     
/*      */ 
/*  377 */     if (enableRsCache()) {
/*  378 */       this.currentRs = DmdbCachedResultSetPool.getResultSet(this.connection.getGUID(), this.connection.getSchema(), 
/*  379 */         this.originalSql, this);
/*      */     } else {
/*  381 */       this.currentRs = null;
/*      */     }
/*  383 */     if (this.currentRs != null)
/*      */     {
/*  385 */       DmdbConnection_bs.rsCachedNum += 1;
/*  386 */       this.dbInfo = this.currentRs.dbInfo;
/*  387 */       return this.currentRs;
/*      */     }
/*      */     
/*  390 */     this.dbInfo = directExec(this, sql, true, 1);
/*      */     
/*  392 */     ResultSet rs = getResultSet(true);
/*      */     
/*      */ 
/*  395 */     close_free();
/*      */     
/*  397 */     return rs;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public synchronized int executeUpdate(String sql)
/*      */     throws SQLException
/*      */   {
/*  417 */     if (Const.TRACE_LEVEL > 0) {
/*  418 */       DmdbLog.trace(this, "executeUpdate(String)", sql);
/*      */     }
/*  420 */     executeInner(sql, 3);
/*      */     
/*  422 */     if (this.dbInfo.getHasResultSet()) {
/*  423 */       DBError.throwSQLException(6009);
/*      */     }
/*  425 */     if (this.dbInfo.getRowCount() > 2147483647L)
/*      */     {
/*  427 */       return Integer.MAX_VALUE;
/*      */     }
/*      */     
/*      */ 
/*  431 */     return (int)this.dbInfo.getRowCount();
/*      */   }
/*      */   
/*      */   protected void checkClosed()
/*      */     throws SQLException
/*      */   {
/*  437 */     if (this.closed)
/*      */     {
/*  439 */       DBError.throwSQLException(6035);
/*  440 */       return;
/*      */     }
/*      */     
/*  443 */     if ((this.connection == null) || (this.connection.closed))
/*      */     {
/*      */ 
/*      */ 
/*      */ 
/*  448 */       DBError.throwSQLException(6035);
/*      */     }
/*      */   }
/*      */   
/*      */   void resetState(boolean clear_dbInfo) throws SQLException
/*      */   {
/*  454 */     if (clear_dbInfo)
/*      */     {
/*  456 */       this.dbInfo = null;
/*      */     }
/*  458 */     this.rsCache = null;
/*  459 */     this.m_insertTableName = "";
/*  460 */     this.cursorUpdateRow = 0L;
/*  461 */     this.fromRowSetFlag = false;
/*      */     
/*  463 */     this.resultSetConcurrency = 1007;
/*  464 */     this.resultSetType = 1003;
/*  465 */     this.resultSetHoldability = this.connection.getHoldability();
/*  466 */     this.process_escapes = this.connection.getEscapesProcessing();
/*  467 */     this.m_queryTimeout = 0;
/*  468 */     this.max_field_size = 0;
/*  469 */     this.maxRows = this.connection.getMaxRows();
/*  470 */     this.row_prefetch = this.connection.getDefaultRowPrefetch();
/*  471 */     this.fetch_direction = 1000;
/*      */     
/*      */ 
/*      */ 
/*  475 */     long ttt = this.handle;
/*  476 */     if (this.handle < 0)
/*      */     {
/*  478 */       ttt = 0xFFFFFFFF & ttt;
/*      */     }
/*      */     
/*  481 */     this.cursorName = ("DM7CUR" + ttt);
/*  482 */     this.type = 0;
/*      */   }
/*      */   
/*      */   /* Error */
/*      */   private void close_free()
/*      */     throws SQLException
/*      */   {
/*      */     // Byte code:
/*      */     //   0: aload_0
/*      */     //   1: getfield 227	dm/jdbc/driver/DmdbStatement_bs:type	I
/*      */     //   4: ifne +110 -> 114
/*      */     //   7: aload_0
/*      */     //   8: getfield 236	dm/jdbc/driver/DmdbStatement_bs:currentRs	Ldm/jdbc/driver/DmdbResultSet_bs;
/*      */     //   11: ifnull +25 -> 36
/*      */     //   14: aload_0
/*      */     //   15: getfield 236	dm/jdbc/driver/DmdbStatement_bs:currentRs	Ldm/jdbc/driver/DmdbResultSet_bs;
/*      */     //   18: getfield 375	dm/jdbc/driver/DmdbResultSet_bs:metaRsFlag	Z
/*      */     //   21: ifne +15 -> 36
/*      */     //   24: aload_0
/*      */     //   25: getfield 236	dm/jdbc/driver/DmdbStatement_bs:currentRs	Ldm/jdbc/driver/DmdbResultSet_bs;
/*      */     //   28: invokevirtual 378	dm/jdbc/driver/DmdbResultSet_bs:close	()V
/*      */     //   31: aload_0
/*      */     //   32: aconst_null
/*      */     //   33: putfield 236	dm/jdbc/driver/DmdbStatement_bs:currentRs	Ldm/jdbc/driver/DmdbResultSet_bs;
/*      */     //   36: aload_0
/*      */     //   37: aconst_null
/*      */     //   38: putfield 246	dm/jdbc/driver/DmdbStatement_bs:originalSql	Ljava/lang/String;
/*      */     //   41: aload_0
/*      */     //   42: getfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   45: ifnull +69 -> 114
/*      */     //   48: aload_0
/*      */     //   49: getfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   52: getfield 370	dm/jdbc/driver/DmdbConnection_bs:closed	Z
/*      */     //   55: ifne +59 -> 114
/*      */     //   58: aload_0
/*      */     //   59: getfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   62: invokevirtual 381	dm/jdbc/driver/DmdbConnection_bs:getStmtPoolSize	()I
/*      */     //   65: aload_0
/*      */     //   66: getfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   69: invokevirtual 384	dm/jdbc/driver/DmdbConnection_bs:getStmtPoolMaxSize	()I
/*      */     //   72: if_icmpge +42 -> 114
/*      */     //   75: aload_0
/*      */     //   76: iconst_1
/*      */     //   77: invokevirtual 387	dm/jdbc/driver/DmdbStatement_bs:resetState	(Z)V
/*      */     //   80: aload_0
/*      */     //   81: invokevirtual 305	dm/jdbc/driver/DmdbStatement_bs:clearWarnings	()V
/*      */     //   84: aload_0
/*      */     //   85: invokevirtual 389	dm/jdbc/driver/DmdbStatement_bs:clearBatch	()V
/*      */     //   88: aload_0
/*      */     //   89: iconst_1
/*      */     //   90: putfield 229	dm/jdbc/driver/DmdbStatement_bs:closed	Z
/*      */     //   93: aload_0
/*      */     //   94: getfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   97: aload_0
/*      */     //   98: getfield 206	dm/jdbc/driver/DmdbStatement_bs:handle	I
/*      */     //   101: i2l
/*      */     //   102: invokevirtual 392	dm/jdbc/driver/DmdbConnection_bs:remove_statement	(J)V
/*      */     //   105: aload_0
/*      */     //   106: getfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   109: aload_0
/*      */     //   110: invokevirtual 396	dm/jdbc/driver/DmdbConnection_bs:addToStmtPool	(Ldm/jdbc/driver/DmdbStatement_bs;)V
/*      */     //   113: return
/*      */     //   114: aload_0
/*      */     //   115: getfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   118: ifnull +61 -> 179
/*      */     //   121: aload_0
/*      */     //   122: getfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   125: getfield 370	dm/jdbc/driver/DmdbConnection_bs:closed	Z
/*      */     //   128: ifne +51 -> 179
/*      */     //   131: aload_0
/*      */     //   132: invokestatic 400	dm/jdbc/driver/DmdbCSI:freeHandle	(Ldm/jdbc/driver/DmdbStatement_bs;)V
/*      */     //   135: aload_0
/*      */     //   136: getfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   139: aload_0
/*      */     //   140: getfield 206	dm/jdbc/driver/DmdbStatement_bs:handle	I
/*      */     //   143: i2l
/*      */     //   144: invokevirtual 392	dm/jdbc/driver/DmdbConnection_bs:remove_statement	(J)V
/*      */     //   147: aload_0
/*      */     //   148: getfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   151: aload_0
/*      */     //   152: invokevirtual 403	dm/jdbc/driver/DmdbConnection_bs:delStmt	(Ljava/sql/Statement;)V
/*      */     //   155: goto +24 -> 179
/*      */     //   158: astore_1
/*      */     //   159: aload_0
/*      */     //   160: aconst_null
/*      */     //   161: putfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   164: aload_0
/*      */     //   165: invokevirtual 305	dm/jdbc/driver/DmdbStatement_bs:clearWarnings	()V
/*      */     //   168: aload_0
/*      */     //   169: invokevirtual 389	dm/jdbc/driver/DmdbStatement_bs:clearBatch	()V
/*      */     //   172: aload_0
/*      */     //   173: iconst_1
/*      */     //   174: putfield 229	dm/jdbc/driver/DmdbStatement_bs:closed	Z
/*      */     //   177: aload_1
/*      */     //   178: athrow
/*      */     //   179: aload_0
/*      */     //   180: aconst_null
/*      */     //   181: putfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   184: aload_0
/*      */     //   185: invokevirtual 305	dm/jdbc/driver/DmdbStatement_bs:clearWarnings	()V
/*      */     //   188: aload_0
/*      */     //   189: invokevirtual 389	dm/jdbc/driver/DmdbStatement_bs:clearBatch	()V
/*      */     //   192: aload_0
/*      */     //   193: iconst_1
/*      */     //   194: putfield 229	dm/jdbc/driver/DmdbStatement_bs:closed	Z
/*      */     //   197: return
/*      */     // Line number table:
/*      */     //   Java source line #504	-> byte code offset #0
/*      */     //   Java source line #506	-> byte code offset #7
/*      */     //   Java source line #508	-> byte code offset #24
/*      */     //   Java source line #509	-> byte code offset #31
/*      */     //   Java source line #512	-> byte code offset #36
/*      */     //   Java source line #514	-> byte code offset #41
/*      */     //   Java source line #515	-> byte code offset #58
/*      */     //   Java source line #517	-> byte code offset #75
/*      */     //   Java source line #519	-> byte code offset #80
/*      */     //   Java source line #520	-> byte code offset #84
/*      */     //   Java source line #521	-> byte code offset #88
/*      */     //   Java source line #523	-> byte code offset #93
/*      */     //   Java source line #524	-> byte code offset #105
/*      */     //   Java source line #526	-> byte code offset #113
/*      */     //   Java source line #532	-> byte code offset #114
/*      */     //   Java source line #534	-> byte code offset #131
/*      */     //   Java source line #536	-> byte code offset #135
/*      */     //   Java source line #539	-> byte code offset #147
/*      */     //   Java source line #543	-> byte code offset #155
/*      */     //   Java source line #545	-> byte code offset #158
/*      */     //   Java source line #546	-> byte code offset #159
/*      */     //   Java source line #547	-> byte code offset #164
/*      */     //   Java source line #548	-> byte code offset #168
/*      */     //   Java source line #549	-> byte code offset #172
/*      */     //   Java source line #550	-> byte code offset #177
/*      */     //   Java source line #546	-> byte code offset #179
/*      */     //   Java source line #547	-> byte code offset #184
/*      */     //   Java source line #548	-> byte code offset #188
/*      */     //   Java source line #549	-> byte code offset #192
/*      */     //   Java source line #551	-> byte code offset #197
/*      */     // Local variable table:
/*      */     //   start	length	slot	name	signature
/*      */     //   0	198	0	this	DmdbStatement_bs
/*      */     //   158	20	1	localObject	Object
/*      */     // Exception table:
/*      */     //   from	to	target	type
/*      */     //   114	158	158	finally
/*      */   }
/*      */   
/*      */   public synchronized void close()
/*      */     throws SQLException
/*      */   {
/*  555 */     if (Const.TRACE_LEVEL > 0) {
/*  556 */       DmdbLog.trace(this, "close()", "");
/*      */     }
/*  558 */     if (this.closed) {
/*  559 */       return;
/*      */     }
/*  561 */     close_free();
/*      */   }
/*      */   
/*      */   public void closeSimple()
/*      */   {
/*  566 */     this.closed = true;
/*      */   }
/*      */   
/*      */   /* Error */
/*      */   public synchronized void innerClose()
/*      */     throws SQLException
/*      */   {
/*      */     // Byte code:
/*      */     //   0: aload_0
/*      */     //   1: invokestatic 400	dm/jdbc/driver/DmdbCSI:freeHandle	(Ldm/jdbc/driver/DmdbStatement_bs;)V
/*      */     //   4: aload_0
/*      */     //   5: getfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   8: aload_0
/*      */     //   9: getfield 206	dm/jdbc/driver/DmdbStatement_bs:handle	I
/*      */     //   12: i2l
/*      */     //   13: invokevirtual 392	dm/jdbc/driver/DmdbConnection_bs:remove_statement	(J)V
/*      */     //   16: goto +24 -> 40
/*      */     //   19: astore_1
/*      */     //   20: aload_0
/*      */     //   21: aconst_null
/*      */     //   22: putfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   25: aload_0
/*      */     //   26: invokevirtual 305	dm/jdbc/driver/DmdbStatement_bs:clearWarnings	()V
/*      */     //   29: aload_0
/*      */     //   30: invokevirtual 389	dm/jdbc/driver/DmdbStatement_bs:clearBatch	()V
/*      */     //   33: aload_0
/*      */     //   34: iconst_1
/*      */     //   35: putfield 229	dm/jdbc/driver/DmdbStatement_bs:closed	Z
/*      */     //   38: aload_1
/*      */     //   39: athrow
/*      */     //   40: aload_0
/*      */     //   41: aconst_null
/*      */     //   42: putfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   45: aload_0
/*      */     //   46: invokevirtual 305	dm/jdbc/driver/DmdbStatement_bs:clearWarnings	()V
/*      */     //   49: aload_0
/*      */     //   50: invokevirtual 389	dm/jdbc/driver/DmdbStatement_bs:clearBatch	()V
/*      */     //   53: aload_0
/*      */     //   54: iconst_1
/*      */     //   55: putfield 229	dm/jdbc/driver/DmdbStatement_bs:closed	Z
/*      */     //   58: return
/*      */     // Line number table:
/*      */     //   Java source line #573	-> byte code offset #0
/*      */     //   Java source line #574	-> byte code offset #4
/*      */     //   Java source line #575	-> byte code offset #16
/*      */     //   Java source line #577	-> byte code offset #19
/*      */     //   Java source line #578	-> byte code offset #20
/*      */     //   Java source line #579	-> byte code offset #25
/*      */     //   Java source line #580	-> byte code offset #29
/*      */     //   Java source line #581	-> byte code offset #33
/*      */     //   Java source line #582	-> byte code offset #38
/*      */     //   Java source line #578	-> byte code offset #40
/*      */     //   Java source line #579	-> byte code offset #45
/*      */     //   Java source line #580	-> byte code offset #49
/*      */     //   Java source line #581	-> byte code offset #53
/*      */     //   Java source line #583	-> byte code offset #58
/*      */     // Local variable table:
/*      */     //   start	length	slot	name	signature
/*      */     //   0	59	0	this	DmdbStatement_bs
/*      */     //   19	20	1	localObject	Object
/*      */     // Exception table:
/*      */     //   from	to	target	type
/*      */     //   0	19	19	finally
/*      */   }
/*      */   
/*      */   public int getMaxFieldSize()
/*      */     throws SQLException
/*      */   {
/*  624 */     return this.max_field_size;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public synchronized void setMaxFieldSize(int max)
/*      */     throws SQLException
/*      */   {
/*  644 */     if (Const.TRACE_LEVEL > 0) {
/*  645 */       DmdbLog.trace(this, "setMaxFieldSize(int)", "max = " + max);
/*      */     }
/*  647 */     if (max < 0) {
/*  648 */       DBError.throwSQLException(6036);
/*      */     }
/*  650 */     this.max_field_size = max;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public int getMaxRows()
/*      */     throws SQLException
/*      */   {
/*  666 */     return this.maxRows;
/*      */   }
/*      */   
/*      */   public int getMaxRowsInner() throws SQLException
/*      */   {
/*  671 */     if (GlobalControlCfg.getEnRsCache()) {
/*  672 */       return 0;
/*      */     }
/*  674 */     return this.maxRows;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public synchronized void setMaxRows(int max)
/*      */     throws SQLException
/*      */   {
/*  689 */     if (Const.TRACE_LEVEL > 0) {
/*  690 */       DmdbLog.trace(this, "setMaxRows(int)", "max = " + max);
/*      */     }
/*  692 */     if (max < 0) {
/*  693 */       DBError.throwSQLException(6036);
/*      */     }
/*  695 */     this.maxRows = max;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public void setEscapeProcessing(boolean enable)
/*      */     throws SQLException
/*      */   {
/*  711 */     if (Const.TRACE_LEVEL > 0) {
/*  712 */       DmdbLog.trace(this, "setEscapeProcessing(boolean)", "enable = " + enable);
/*      */     }
/*  714 */     this.process_escapes = enable;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public int getQueryTimeout()
/*      */     throws SQLException
/*      */   {
/*  729 */     return this.m_queryTimeout;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public synchronized void setQueryTimeout(int seconds)
/*      */     throws SQLException
/*      */   {
/*  745 */     if (Const.TRACE_LEVEL > 0) {
/*  746 */       DmdbLog.trace(this, "setQueryTimeout(int)", "seconds = " + seconds);
/*      */     }
/*  748 */     if (seconds < 0) {
/*  749 */       DBError.throwSQLException(6036);
/*      */     }
/*  751 */     this.m_queryTimeout = seconds;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public synchronized void cancel()
/*      */     throws SQLException
/*      */   {}
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public SQLWarning getWarnings()
/*      */     throws SQLException
/*      */   {
/*  791 */     return this.m_warnings;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public void clearWarnings()
/*      */     throws SQLException
/*      */   {
/*  805 */     this.m_warnings = null;
/*  806 */     if (this.dbInfo != null)
/*      */     {
/*  808 */       this.dbInfo.setExplain(null);
/*      */     }
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public void setCursorName(String name)
/*      */     throws SQLException
/*      */   {
/*  834 */     if (Const.TRACE_LEVEL > 0) {
/*  835 */       DmdbLog.trace(this, "setCursorName(String)", "name = " + name);
/*      */     }
/*  837 */     DmdbCSI.setCursorName(this, name);
/*  838 */     this.cursorName = name;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public synchronized boolean execute(String sql)
/*      */     throws SQLException
/*      */   {
/*  867 */     if (Const.TRACE_LEVEL > 0) {
/*  868 */       DmdbLog.trace(this, "execute(String)", sql);
/*      */     }
/*  870 */     executeInner(sql, 1);
/*  871 */     boolean hasRs = this.dbInfo.getHasResultSet();
/*      */     
/*  873 */     return hasRs;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public synchronized ResultSet getResultSet()
/*      */     throws SQLException
/*      */   {
/*  888 */     if (Const.TRACE_LEVEL > 0) {
/*  889 */       DmdbLog.trace(this, "getResultSet()", "");
/*      */     }
/*      */     
/*  892 */     checkClosed();
/*      */     
/*  894 */     if (!this.dbInfo.getHasResultSet())
/*      */     {
/*  896 */       return null;
/*      */     }
/*      */     
/*  899 */     return this.currentRs;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public synchronized int getUpdateCount()
/*      */     throws SQLException
/*      */   {
/*  915 */     int updateCount = -1;
/*      */     
/*  917 */     if (!this.dbInfo.getHasResultSet())
/*      */     {
/*  919 */       updateCount = (int)this.dbInfo.getRowCount();
/*  920 */       updateCount = updateCount == 0 ? -1 : updateCount;
/*  921 */       this.dbInfo.setRowCount(-1L);
/*      */     }
/*  923 */     return updateCount;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public boolean getMoreResults()
/*      */     throws SQLException
/*      */   {
/*  946 */     if (Const.TRACE_LEVEL > 0) {
/*  947 */       DmdbLog.trace(this, "getMoreResults()", "");
/*      */     }
/*  949 */     return getMoreResults(this.CLOSE_CURRENT_RESULT);
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public synchronized void setFetchDirection(int direction)
/*      */     throws SQLException
/*      */   {
/*  975 */     if (Const.TRACE_LEVEL > 0) {
/*  976 */       DmdbLog.trace(this, "setFetchDirection(int)", "direction = " + direction);
/*      */     }
/*  978 */     if ((direction == 1000) || (direction == 1001))
/*      */     {
/*  980 */       this.fetch_direction = direction;
/*      */     }
/*  982 */     else if (direction == 1002)
/*      */     {
/*  984 */       this.fetch_direction = 1000;
/*  985 */       this.m_warnings = DBError.addSQLWarning(this.m_warnings, 37);
/*      */     }
/*      */     else
/*      */     {
/*  989 */       DBError.throwSQLException(6036);
/*      */     }
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public int getFetchDirection()
/*      */     throws SQLException
/*      */   {
/* 1008 */     return this.fetch_direction;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public synchronized void setFetchSize(int rows)
/*      */     throws SQLException
/*      */   {
/* 1027 */     if (Const.TRACE_LEVEL > 0) {
/* 1028 */       DmdbLog.trace(this, "setFetchSize(int)", "rows = " + rows);
/*      */     }
/* 1030 */     if (((rows < 0) && (rows != Integer.MIN_VALUE)) || (
/* 1031 */       (this.maxRows != 0) && (this.maxRows != -1) && (rows > this.maxRows)))
/*      */     {
/* 1033 */       DBError.throwSQLException(6036);
/*      */     }
/*      */     
/* 1036 */     this.row_prefetch = rows;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public int getFetchSize()
/*      */     throws SQLException
/*      */   {
/* 1054 */     return this.row_prefetch;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public int getResultSetConcurrency()
/*      */     throws SQLException
/*      */   {
/* 1068 */     return this.resultSetConcurrency;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public int getResultSetType()
/*      */     throws SQLException
/*      */   {
/* 1083 */     return this.resultSetType;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public void addBatch(String sql)
/*      */     throws SQLException
/*      */   {
/* 1102 */     if (Const.TRACE_LEVEL > 0) {
/* 1103 */       DmdbLog.trace(this, "addBatch(String)", sql);
/*      */     }
/* 1105 */     if (this.m_batchItems == null)
/*      */     {
/* 1107 */       this.m_batchItems = new ArrayList(10);
/*      */     }
/*      */     
/* 1110 */     checkNullOrEmpty(sql);
/*      */     
/* 1112 */     this.m_batchItems.add(sql);
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public void clearBatch()
/*      */     throws SQLException
/*      */   {
/* 1128 */     if (Const.TRACE_LEVEL > 0) {
/* 1129 */       DmdbLog.trace(this, "clearBatch()", "");
/*      */     }
/* 1131 */     if (this.m_batchItems != null)
/*      */     {
/* 1133 */       this.m_batchItems.clear();
/* 1134 */       this.m_batchItems = null;
/*      */     }
/*      */   }
/*      */   
/*      */   /* Error */
/*      */   public int[] executeBatch()
/*      */     throws SQLException
/*      */   {
/*      */     // Byte code:
/*      */     //   0: getstatic 271	dm/jdbc/dbaccess/Const:TRACE_LEVEL	I
/*      */     //   3: ifle +12 -> 15
/*      */     //   6: aload_0
/*      */     //   7: ldc_w 515
/*      */     //   10: ldc -16
/*      */     //   12: invokestatic 278	dm/jdbc/driver/DmdbLog:trace	(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V
/*      */     //   15: aload_0
/*      */     //   16: iconst_0
/*      */     //   17: putfield 238	dm/jdbc/driver/DmdbStatement_bs:resId	S
/*      */     //   20: aload_0
/*      */     //   21: invokevirtual 305	dm/jdbc/driver/DmdbStatement_bs:clearWarnings	()V
/*      */     //   24: aload_0
/*      */     //   25: getfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   28: invokevirtual 517	dm/jdbc/driver/DmdbConnection_bs:isReadOnly	()Z
/*      */     //   31: ifeq +9 -> 40
/*      */     //   34: sipush 6008
/*      */     //   37: invokestatic 359	dm/jdbc/dbaccess/DBError:throwSQLException	(I)V
/*      */     //   40: iconst_0
/*      */     //   41: newarray <illegal type>
/*      */     //   43: astore_1
/*      */     //   44: aload_0
/*      */     //   45: getfield 192	dm/jdbc/driver/DmdbStatement_bs:m_batchItems	Ljava/util/ArrayList;
/*      */     //   48: ifnull +170 -> 218
/*      */     //   51: aload_0
/*      */     //   52: getfield 192	dm/jdbc/driver/DmdbStatement_bs:m_batchItems	Ljava/util/ArrayList;
/*      */     //   55: invokevirtual 520	java/util/ArrayList:size	()I
/*      */     //   58: istore_2
/*      */     //   59: iload_2
/*      */     //   60: newarray <illegal type>
/*      */     //   62: astore_1
/*      */     //   63: iconst_0
/*      */     //   64: istore_3
/*      */     //   65: goto +13 -> 78
/*      */     //   68: aload_1
/*      */     //   69: iload_3
/*      */     //   70: aload_0
/*      */     //   71: getfield 258	dm/jdbc/driver/DmdbStatement_bs:EXECUTE_FAILED	I
/*      */     //   74: iastore
/*      */     //   75: iinc 3 1
/*      */     //   78: iload_3
/*      */     //   79: iload_2
/*      */     //   80: if_icmplt -12 -> 68
/*      */     //   83: aconst_null
/*      */     //   84: astore_3
/*      */     //   85: iconst_0
/*      */     //   86: istore 4
/*      */     //   88: iconst_0
/*      */     //   89: istore 4
/*      */     //   91: goto +96 -> 187
/*      */     //   94: aload_1
/*      */     //   95: iload 4
/*      */     //   97: aload_0
/*      */     //   98: aload_0
/*      */     //   99: getfield 192	dm/jdbc/driver/DmdbStatement_bs:m_batchItems	Ljava/util/ArrayList;
/*      */     //   102: iload 4
/*      */     //   104: invokevirtual 523	java/util/ArrayList:get	(I)Ljava/lang/Object;
/*      */     //   107: checkcast 527	java/lang/String
/*      */     //   110: invokevirtual 529	dm/jdbc/driver/DmdbStatement_bs:executeUpdate	(Ljava/lang/String;)I
/*      */     //   113: iastore
/*      */     //   114: goto +70 -> 184
/*      */     //   117: astore 5
/*      */     //   119: aload_1
/*      */     //   120: iload 4
/*      */     //   122: aload_0
/*      */     //   123: getfield 258	dm/jdbc/driver/DmdbStatement_bs:EXECUTE_FAILED	I
/*      */     //   126: iastore
/*      */     //   127: aload_0
/*      */     //   128: getfield 151	dm/jdbc/driver/DmdbStatement_bs:connection	Ldm/jdbc/driver/DmdbConnection_bs;
/*      */     //   131: invokevirtual 531	dm/jdbc/driver/DmdbConnection_bs:getContinueBatchOnError	()Z
/*      */     //   134: ifeq +9 -> 143
/*      */     //   137: aload 5
/*      */     //   139: astore_3
/*      */     //   140: goto +44 -> 184
/*      */     //   143: iload 4
/*      */     //   145: newarray <illegal type>
/*      */     //   147: astore 6
/*      */     //   149: aload_1
/*      */     //   150: iconst_0
/*      */     //   151: aload 6
/*      */     //   153: iconst_0
/*      */     //   154: iload 4
/*      */     //   156: invokestatic 92	java/lang/System:arraycopy	(Ljava/lang/Object;ILjava/lang/Object;II)V
/*      */     //   159: new 534	java/sql/BatchUpdateException
/*      */     //   162: dup
/*      */     //   163: aload 5
/*      */     //   165: invokevirtual 536	java/sql/SQLException:getMessage	()Ljava/lang/String;
/*      */     //   168: aload 5
/*      */     //   170: invokevirtual 539	java/sql/SQLException:getSQLState	()Ljava/lang/String;
/*      */     //   173: aload 5
/*      */     //   175: invokevirtual 542	java/sql/SQLException:getErrorCode	()I
/*      */     //   178: aload 6
/*      */     //   180: invokespecial 545	java/sql/BatchUpdateException:<init>	(Ljava/lang/String;Ljava/lang/String;I[I)V
/*      */     //   183: athrow
/*      */     //   184: iinc 4 1
/*      */     //   187: iload 4
/*      */     //   189: iload_2
/*      */     //   190: if_icmplt -96 -> 94
/*      */     //   193: aload_3
/*      */     //   194: ifnull +24 -> 218
/*      */     //   197: new 534	java/sql/BatchUpdateException
/*      */     //   200: dup
/*      */     //   201: aload_3
/*      */     //   202: invokevirtual 536	java/sql/SQLException:getMessage	()Ljava/lang/String;
/*      */     //   205: aload_3
/*      */     //   206: invokevirtual 539	java/sql/SQLException:getSQLState	()Ljava/lang/String;
/*      */     //   209: aload_3
/*      */     //   210: invokevirtual 542	java/sql/SQLException:getErrorCode	()I
/*      */     //   213: aload_1
/*      */     //   214: invokespecial 545	java/sql/BatchUpdateException:<init>	(Ljava/lang/String;Ljava/lang/String;I[I)V
/*      */     //   217: athrow
/*      */     //   218: aload_1
/*      */     //   219: ifnull +7 -> 226
/*      */     //   222: aload_1
/*      */     //   223: goto +6 -> 229
/*      */     //   226: iconst_0
/*      */     //   227: newarray <illegal type>
/*      */     //   229: astore 8
/*      */     //   231: aload_0
/*      */     //   232: invokevirtual 389	dm/jdbc/driver/DmdbStatement_bs:clearBatch	()V
/*      */     //   235: aload 8
/*      */     //   237: areturn
/*      */     //   238: astore 7
/*      */     //   240: aload_0
/*      */     //   241: invokevirtual 389	dm/jdbc/driver/DmdbStatement_bs:clearBatch	()V
/*      */     //   244: aload 7
/*      */     //   246: athrow
/*      */     //   247: astore_1
/*      */     //   248: aload_1
/*      */     //   249: athrow
/*      */     // Line number table:
/*      */     //   Java source line #1201	-> byte code offset #0
/*      */     //   Java source line #1202	-> byte code offset #6
/*      */     //   Java source line #1206	-> byte code offset #15
/*      */     //   Java source line #1207	-> byte code offset #20
/*      */     //   Java source line #1208	-> byte code offset #24
/*      */     //   Java source line #1210	-> byte code offset #34
/*      */     //   Java source line #1215	-> byte code offset #40
/*      */     //   Java source line #1218	-> byte code offset #44
/*      */     //   Java source line #1220	-> byte code offset #51
/*      */     //   Java source line #1221	-> byte code offset #59
/*      */     //   Java source line #1223	-> byte code offset #63
/*      */     //   Java source line #1225	-> byte code offset #68
/*      */     //   Java source line #1223	-> byte code offset #75
/*      */     //   Java source line #1228	-> byte code offset #83
/*      */     //   Java source line #1230	-> byte code offset #85
/*      */     //   Java source line #1232	-> byte code offset #88
/*      */     //   Java source line #1236	-> byte code offset #94
/*      */     //   Java source line #1237	-> byte code offset #114
/*      */     //   Java source line #1238	-> byte code offset #117
/*      */     //   Java source line #1240	-> byte code offset #119
/*      */     //   Java source line #1242	-> byte code offset #127
/*      */     //   Java source line #1243	-> byte code offset #137
/*      */     //   Java source line #1246	-> byte code offset #143
/*      */     //   Java source line #1247	-> byte code offset #149
/*      */     //   Java source line #1249	-> byte code offset #159
/*      */     //   Java source line #1250	-> byte code offset #173
/*      */     //   Java source line #1249	-> byte code offset #180
/*      */     //   Java source line #1232	-> byte code offset #184
/*      */     //   Java source line #1255	-> byte code offset #193
/*      */     //   Java source line #1257	-> byte code offset #197
/*      */     //   Java source line #1258	-> byte code offset #209
/*      */     //   Java source line #1257	-> byte code offset #214
/*      */     //   Java source line #1262	-> byte code offset #218
/*      */     //   Java source line #1266	-> byte code offset #231
/*      */     //   Java source line #1262	-> byte code offset #235
/*      */     //   Java source line #1265	-> byte code offset #238
/*      */     //   Java source line #1266	-> byte code offset #240
/*      */     //   Java source line #1267	-> byte code offset #244
/*      */     //   Java source line #1269	-> byte code offset #247
/*      */     //   Java source line #1272	-> byte code offset #248
/*      */     // Local variable table:
/*      */     //   start	length	slot	name	signature
/*      */     //   0	250	0	this	DmdbStatement_bs
/*      */     //   43	180	1	updateCounts	int[]
/*      */     //   247	2	1	e	SQLException
/*      */     //   58	132	2	nbrCommands	int
/*      */     //   64	15	3	i	int
/*      */     //   84	126	3	sqlEx	SQLException
/*      */     //   86	102	4	commandIndex	int
/*      */     //   117	57	5	ex	SQLException
/*      */     //   147	32	6	newUpdateCounts	int[]
/*      */     //   238	7	7	localObject	Object
/*      */     // Exception table:
/*      */     //   from	to	target	type
/*      */     //   94	114	117	java/sql/SQLException
/*      */     //   40	231	238	finally
/*      */     //   15	235	247	java/sql/SQLException
/*      */     //   238	247	247	java/sql/SQLException
/*      */   }
/*      */   
/*      */   public DmdbConnection_bs getConnection_bs()
/*      */   {
/* 1278 */     return this.connection;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public Connection getConnection()
/*      */     throws SQLException
/*      */   {
/* 1292 */     return this.connection;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/* 1304 */   int CLOSE_CURRENT_RESULT = 1;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/* 1312 */   int KEEP_CURRENT_RESULT = 2;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/* 1321 */   int CLOSE_ALL_RESULTS = 3;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/* 1329 */   int SUCCESS_NO_INFO = -2;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/* 1337 */   int EXECUTE_FAILED = -3;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/* 1345 */   int RETURN_GENERATED_KEYS = 1;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/* 1353 */   int NO_GENERATED_KEYS = 2;
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public synchronized boolean getMoreResults(int current)
/*      */     throws SQLException
/*      */   {
/* 1382 */     if (Const.TRACE_LEVEL > 0) {
/* 1383 */       DmdbLog.trace(this, "getMoreResultS(int)", current);
/*      */     }
/* 1385 */     if (this.dbInfo.getHasResultSet())
/*      */     {
/* 1387 */       checkCloseRsCons(current);
/*      */       
/* 1389 */       getMoreRsInner();
/*      */       
/* 1391 */       handleOldRsByCloseRs(current);
/*      */     }
/*      */     
/* 1394 */     return this.dbInfo.getHasResultSet();
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   private ResultSet makeGeneratedKeysRs()
/*      */     throws SQLException
/*      */   {
/* 1410 */     DmdbInfo dbInfo = new DmdbInfo();
/* 1411 */     dbInfo.setColCount(1);
/*      */     
/* 1413 */     DmdbColumn[] colInfos = new DmdbColumn[1];
/* 1414 */     colInfos[0] = new DmdbColumn(this.connection);
/* 1415 */     colInfos[0].getDesc().setDType(8);
/* 1416 */     colInfos[0].getDesc().setPrec(8);
/* 1417 */     colInfos[0].getDesc().setScale(0);
/*      */     
/* 1419 */     colInfos[0].getDesc().setName("AUTO_GEN_KEY");
/* 1420 */     colInfos[0].getDesc().setNullable(false);
/*      */     
/* 1422 */     colInfos[0].getDesc().setSchName(getTbSchNameSolo());
/* 1423 */     colInfos[0].getDesc().setTabName(getTbNameSolo());
/*      */     
/* 1425 */     colInfos[0].getDesc().setTypeName("BIGINT");
/* 1426 */     dbInfo.setColumnsInfo(colInfos);
/*      */     
/* 1428 */     DmdbResultSetCache rsCache = null;
/*      */     
/* 1430 */     rsCache = new DmdbResultSetCache_h(this, colInfos);
/*      */     
/* 1432 */     int rowCnt = 0;
/* 1433 */     if ((this.m_retIds != null) && (this.m_retIds.length > 0))
/* 1434 */       rowCnt = this.m_retIds.length;
/* 1435 */     dbInfo.setRowCount(rowCnt);
/*      */     
/* 1437 */     byte[] rowbuf = new byte[22 * rowCnt];
/* 1438 */     int offset = 0;
/*      */     
/* 1440 */     for (int i = 0; i < rowCnt; i++)
/*      */     {
/* 1442 */       Convertion.setShort(rowbuf, offset, (short)22);
/* 1443 */       offset += 2;
/*      */       
/* 1445 */       Convertion.setLong(rowbuf, offset, this.m_retIds[i]);
/* 1446 */       offset += 8;
/*      */       
/* 1448 */       Convertion.setShort(rowbuf, offset, (short)12);
/* 1449 */       offset += 2;
/*      */       
/* 1451 */       Convertion.setShort(rowbuf, offset, (short)8);
/* 1452 */       offset += 2;
/*      */       
/* 1454 */       Convertion.setLong(rowbuf, offset, this.m_retIds[i]);
/* 1455 */       offset += 8;
/*      */     }
/*      */     
/* 1458 */     rsCache.fillBuffer(rowbuf, rowbuf.length, rowCnt);
/*      */     
/* 1460 */     DmdbResultSet_bs rs = null;
/* 1461 */     rs = new DmdbResultSet_bs(rsCache, dbInfo, this.m_execfromStanbdy);
/* 1462 */     return rs;
/*      */   }
/*      */   
/*      */   public ResultSet getGeneratedKeys() throws SQLException
/*      */   {
/* 1467 */     if (Const.TRACE_LEVEL > 0) {
/* 1468 */       DmdbLog.trace(this, "getGeneratedKeys()", "");
/*      */     }
/* 1470 */     ResultSet rs = makeGeneratedKeysRs();
/*      */     
/* 1472 */     return rs;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public int executeUpdate(String sql, int autoGeneratedKeys)
/*      */     throws SQLException
/*      */   {
/* 1499 */     setAutoGetKeysInner(autoGeneratedKeys);
/* 1500 */     int updateCount = executeUpdate(sql);
/* 1501 */     setAutoGenInfoAftExec();
/*      */     
/* 1503 */     return updateCount;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public int executeUpdate(String sql, int[] columnIndexes)
/*      */     throws SQLException
/*      */   {
/* 1527 */     if ((columnIndexes != null) && (columnIndexes.length > 0)) {
/* 1528 */       setAutoGetKeys(true);
/*      */     } else {
/* 1530 */       setAutoGetKeys(false);
/*      */     }
/* 1532 */     int ret = executeUpdate(sql);
/*      */     
/* 1534 */     setAutoGenInfoAftExec();
/*      */     
/* 1536 */     return ret;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public int executeUpdate(String sql, String[] columnNames)
/*      */     throws SQLException
/*      */   {
/* 1559 */     if ((columnNames != null) && (columnNames.length > 0)) {
/* 1560 */       setAutoGetKeys(true);
/*      */     } else {
/* 1562 */       setAutoGetKeys(false);
/*      */     }
/* 1564 */     int ret = executeUpdate(sql);
/*      */     
/* 1566 */     setAutoGenInfoAftExec();
/*      */     
/* 1568 */     return ret;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public boolean execute(String sql, int autoGeneratedKeys)
/*      */     throws SQLException
/*      */   {
/* 1607 */     setAutoGetKeysInner(autoGeneratedKeys);
/* 1608 */     boolean hasRs = execute(sql);
/* 1609 */     setAutoGenInfoAftExec();
/*      */     
/* 1611 */     return hasRs;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public boolean execute(String sql, int[] columnIndexes)
/*      */     throws SQLException
/*      */   {
/* 1650 */     if ((columnIndexes != null) && (columnIndexes.length > 0)) {
/* 1651 */       setAutoGetKeys(true);
/*      */     } else {
/* 1653 */       setAutoGetKeys(false);
/*      */     }
/* 1655 */     boolean b = execute(sql);
/*      */     
/* 1657 */     setAutoGenInfoAftExec();
/*      */     
/* 1659 */     return b;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public boolean execute(String sql, String[] columnNames)
/*      */     throws SQLException
/*      */   {
/* 1697 */     if ((columnNames != null) && (columnNames.length > 0)) {
/* 1698 */       setAutoGetKeys(true);
/*      */     } else {
/* 1700 */       setAutoGetKeys(false);
/*      */     }
/* 1702 */     boolean b = execute(sql);
/*      */     
/* 1704 */     setAutoGenInfoAftExec();
/*      */     
/* 1706 */     return b;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public int getResultSetHoldability()
/*      */     throws SQLException
/*      */   {
/* 1720 */     return this.resultSetHoldability;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   void checkNullOrEmpty(String sql)
/*      */     throws SQLException
/*      */   {
/* 1734 */     if ((sql == null) || (sql.length() == 0))
/*      */     {
/* 1736 */       DBError.throwSQLException(6003);
/*      */     }
/*      */   }
/*      */   
/*      */   public int getHandle()
/*      */   {
/* 1742 */     return this.handle;
/*      */   }
/*      */   
/*      */   protected DmdbInfo directExec(DmdbStatement_bs stmt, String s, boolean direct, int checkFlag)
/*      */     throws SQLException
/*      */   {
/* 1748 */     DmdbInfo info = DmdbCSI.prepareSQL(stmt, s, direct, checkFlag);
/*      */     
/* 1750 */     int sqlcode = info.getSQLCode();
/* 1751 */     if (sqlcode > 0)
/*      */     {
/* 1753 */       this.m_warnings = DBError.addSQLWarning(this.m_warnings, sqlcode);
/*      */     }
/* 1755 */     return info;
/*      */   }
/*      */   
/*      */   protected DmdbInfo directExec_Opt(DmdbExecOpt execOpt) throws SQLException
/*      */   {
/* 1760 */     DmdbInfo info = DmdbCSI.directExec_Opt(this, execOpt);
/*      */     
/* 1762 */     int sqlcode = info.getSQLCode();
/* 1763 */     if (sqlcode > 0) {
/* 1764 */       this.m_warnings = DBError.addSQLWarning(this.m_warnings, sqlcode);
/*      */     }
/* 1766 */     return info;
/*      */   }
/*      */   
/*      */   protected DmdbResultSet_bs getResultSet(boolean fetchAll) throws SQLException
/*      */   {
/* 1771 */     if (this.rsCache == null)
/*      */     {
/* 1773 */       if (this.dbInfo.isBdtaRs()) {
/* 1774 */         this.rsCache = new DmdbResultSetCache_v(this, this.dbInfo.getColumnsInfo(), -1);
/*      */       } else {
/* 1776 */         this.rsCache = new DmdbResultSetCache_h(this, this.dbInfo.getColumnsInfo());
/*      */       }
/*      */     }
/* 1779 */     DmdbResultSet_bs rs = new DmdbResultSet_bs(this.rsCache, this.dbInfo, fetchAll, this.m_execfromStanbdy);
/* 1780 */     if (enableRsCache_dbInfo()) {
/* 1781 */       DmdbCachedResultSetPool.addResultSet(rs, this.connection.getGUID(), this.connection.getSchema(), 
/* 1782 */         this.originalSql, this.m_TbIds, this.m_TbTss, this.dbInfo);
/*      */     }
/* 1784 */     return rs;
/*      */   }
/*      */   
/*      */   protected DmdbResultSet_bs getResultSetPrivate(int closeRs)
/*      */     throws SQLException
/*      */   {
/* 1790 */     closeCurrentResultSet(closeRs);
/*      */     
/*      */ 
/* 1793 */     return createNewResultSetByDbInfo();
/*      */   }
/*      */   
/*      */   private void handleOldRsByCloseRs(int closeRs) throws SQLException
/*      */   {
/* 1798 */     if (closeRs == 2)
/*      */     {
/* 1800 */       if (this.currentRs != null) {
/* 1801 */         this.resultsList.add(this.currentRs);
/*      */       }
/* 1803 */       createNewResultSetByDbInfo();
/*      */     }
/* 1805 */     else if (closeRs == 1)
/*      */     {
/* 1807 */       getResultSetPrivate(1);
/*      */     }
/*      */     else
/*      */     {
/* 1811 */       getResultSetPrivate(1);
/* 1812 */       for (int i = 0; i < this.resultsList.size(); i++)
/*      */       {
/* 1814 */         ((DmdbResultSet_bs)this.resultsList.get(i)).close();
/*      */       }
/* 1816 */       this.resultsList.clear();
/*      */     }
/*      */   }
/*      */   
/*      */   private void checkCloseRsCons(int closeRs) throws SQLException
/*      */   {
/* 1822 */     switch (closeRs)
/*      */     {
/*      */     case 1: 
/*      */     case 2: 
/*      */     case 3: 
/*      */       break;
/*      */     
/*      */     default: 
/* 1830 */       DBError.throwSQLException(Const.res.getString("error.unsupportedParam"));
/*      */     }
/*      */   }
/*      */   
/*      */   private void closeCurrentResultSet(int closeRs) throws SQLException
/*      */   {
/* 1836 */     if (closeRs == 1)
/*      */     {
/* 1838 */       if (this.currentRs != null)
/*      */       {
/* 1840 */         if ((this instanceof DmdbCallableStatement_bs))
/*      */         {
/* 1842 */           if (((DmdbCallableStatement_bs)this).resultsCount == 0) {
/* 1843 */             this.currentRs.close();
/*      */           }
/*      */         } else {
/* 1846 */           this.currentRs.close();
/*      */         }
/*      */       }
/*      */     }
/*      */   }
/*      */   
/*      */   private void getMoreRsInner() throws SQLException {
/* 1853 */     this.dbInfo = DmdbCSI.getMoreResult(this, (short)0);
/* 1854 */     if (this.dbInfo.getHasResultSet()) {
/* 1855 */       this.resId = ((short)(this.resId + 1));
/*      */     }
/*      */   }
/*      */   
/*      */   private DmdbResultSet_bs createNewResultSetByDbInfo() throws SQLException {
/* 1860 */     if (!this.dbInfo.getHasResultSet())
/*      */     {
/* 1862 */       this.currentRs = null;
/*      */     }
/*      */     else
/*      */     {
/* 1866 */       if (this.rsCache == null)
/*      */       {
/* 1868 */         if (this.dbInfo.isBdtaRs()) {
/* 1869 */           this.rsCache = new DmdbResultSetCache_v(this, this.dbInfo.getColumnsInfo(), -1);
/*      */         } else {
/* 1871 */           this.rsCache = new DmdbResultSetCache_h(this, this.dbInfo.getColumnsInfo());
/*      */         }
/*      */       }
/* 1874 */       this.currentRs = new DmdbResultSet_bs(this.rsCache, this.dbInfo, this.m_execfromStanbdy);
/* 1875 */       this.currentRs.setRsId(this.resId);
/* 1876 */       this.currentRs.startRow = 0L;
/*      */       
/* 1878 */       if (enableRsCache_dbInfo())
/*      */       {
/* 1880 */         this.currentRs.fromRsCachePool = true;
/* 1881 */         this.currentRs.maxRows = this.maxRows;
/* 1882 */         DmdbCachedResultSetPool.addResultSet(this.currentRs, this.connection.getGUID(), this.connection.getSchema(), 
/* 1883 */           this.originalSql, this.m_TbIds, this.m_TbTss, this.dbInfo);
/*      */       }
/*      */     }
/*      */     
/* 1887 */     return this.currentRs;
/*      */   }
/*      */   
/*      */   String getTableNameBySql(String sql)
/*      */   {
/* 1892 */     if (!this.m_autoGenKeys) {
/* 1893 */       return "";
/*      */     }
/*      */     
/*      */ 
/*      */ 
/* 1898 */     int headlen = 0;
/* 1899 */     String[] wordList = sql.split(" ");
/* 1900 */     int index = 0;
/* 1901 */     for (int i = 0; i < wordList.length; i++)
/*      */     {
/* 1903 */       String word = wordList[i];
/* 1904 */       if (!StringUtil.isEmpty(word))
/*      */       {
/* 1906 */         if (index == 0)
/*      */         {
/* 1908 */           if (word.equalsIgnoreCase("insert"))
/*      */           {
/* 1910 */             index++;
/*      */ 
/*      */           }
/*      */           else
/*      */           {
/* 1915 */             return null;
/*      */           }
/*      */           
/*      */         }
/* 1919 */         else if (index == 1)
/*      */         {
/* 1921 */           if (word.equalsIgnoreCase("into"))
/*      */           {
/* 1923 */             index++;
/*      */ 
/*      */           }
/*      */           else
/*      */           {
/* 1928 */             return null;
/*      */           }
/*      */         }
/*      */         else {
/* 1932 */           if (index > 1) {
/*      */             break;
/*      */           }
/*      */         }
/*      */       }
/*      */     }
/*      */     
/* 1939 */     headlen = sql.toLowerCase().indexOf("into") + "into".length();
/*      */     
/*      */ 
/* 1942 */     int valuesIndex = sql.toLowerCase().indexOf("values");
/* 1943 */     if (-1 == valuesIndex) {
/* 1944 */       return null;
/*      */     }
/*      */     
/* 1947 */     String sqltb = sql.substring(headlen, valuesIndex).trim();
/* 1948 */     int leftB = sqltb.indexOf("(");
/* 1949 */     if (-1 == leftB) {
/* 1950 */       return sqltb;
/*      */     }
/* 1952 */     return sqltb.substring(0, leftB).trim();
/*      */   }
/*      */   
/*      */   String getTbSchNameSolo()
/*      */   {
/* 1957 */     if ((this.m_insertTableName == null) || (this.m_insertTableName.length() == 0)) {
/* 1958 */       return null;
/*      */     }
/*      */     
/* 1961 */     int colonIndex = this.m_insertTableName.indexOf(".");
/* 1962 */     if (colonIndex == -1) {
/* 1963 */       return this.connection.getSchema();
/*      */     }
/* 1965 */     String schName = this.m_insertTableName.substring(0, colonIndex);
/* 1966 */     if ((schName.startsWith("\"")) && (schName.endsWith("\"")))
/*      */     {
/* 1968 */       schName = schName.substring(1, schName.length() - 1);
/*      */     }
/*      */     
/* 1971 */     if (!this.connection.getCaseSensitive())
/*      */     {
/* 1973 */       schName = schName.toUpperCase();
/*      */     }
/* 1975 */     return schName;
/*      */   }
/*      */   
/*      */   String getTbNameSolo()
/*      */   {
/* 1980 */     if ((this.m_insertTableName == null) || (this.m_insertTableName.length() == 0)) {
/* 1981 */       return null;
/*      */     }
/* 1983 */     String tabName = null;
/*      */     
/*      */ 
/* 1986 */     int colonIndex = this.m_insertTableName.indexOf(".");
/* 1987 */     if (colonIndex == -1)
/*      */     {
/* 1989 */       tabName = this.m_insertTableName;
/*      */     }
/*      */     else
/*      */     {
/* 1993 */       tabName = this.m_insertTableName.substring(colonIndex + 1);
/*      */     }
/*      */     
/* 1996 */     if ((tabName.startsWith("\"")) && (tabName.endsWith("\"")))
/*      */     {
/* 1998 */       tabName = tabName.substring(1, tabName.length() - 1);
/*      */     }
/*      */     
/* 2001 */     if (!this.connection.getCaseSensitive())
/*      */     {
/* 2003 */       tabName = tabName.toUpperCase();
/*      */     }
/*      */     
/* 2006 */     return tabName;
/*      */   }
/*      */   
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */ 
/*      */   public final boolean getIsPutLobData_In()
/*      */   {
/* 2031 */     if (this.m_putLobData == 1) {
/* 2032 */       return true;
/*      */     }
/* 2034 */     return false;
/*      */   }
/*      */   
/*      */   public final void setPutLobData(int flag)
/*      */   {
/* 2039 */     this.m_putLobData = flag;
/*      */   }
/*      */   
/*      */   public boolean autoGeneratedKeys()
/*      */   {
/* 2044 */     return this.m_autoGenKeys;
/*      */   }
/*      */   
/*      */   protected void setAutoGenInfoAftExec()
/*      */   {
/* 2049 */     this.m_autoGenKeys = false;
/*      */   }
/*      */   
/*      */   protected void setAutoGetKeysInner(int autoGeneratedKeys)
/*      */   {
/* 2054 */     if (autoGeneratedKeys == 1) {
/* 2055 */       this.m_autoGenKeys = true;
/*      */     } else {
/* 2057 */       this.m_autoGenKeys = false;
/*      */     }
/*      */   }
/*      */   
/*      */   protected void setAutoGetKeys(boolean auto)
/*      */   {
/* 2063 */     this.m_autoGenKeys = auto;
/*      */   }
/*      */   
/*      */   protected void transReadOnlyCheck(String sql) throws SQLException
/*      */   {
/* 2068 */     String tmpsql = sql.trim();
/* 2069 */     String sqlhead = tmpsql.split(" ", 2)[0];
/* 2070 */     if ((sqlhead.equalsIgnoreCase("INSERT")) || (sqlhead.equalsIgnoreCase("UPDATE")) || 
/* 2071 */       (sqlhead.equalsIgnoreCase("DELETE")) || (sqlhead.equalsIgnoreCase("CREATE")) || 
/* 2072 */       (sqlhead.equalsIgnoreCase("TRUNCATE")) || (sqlhead.equalsIgnoreCase("DROP")))
/*      */     {
/* 2074 */       this.connection.setTransReadonly(false);
/*      */     }
/*      */   }
/*      */   
/*      */   protected void executeInner(String sql, int execType) throws SQLException
/*      */   {
/* 2080 */     this.resId = 0;
/* 2081 */     checkClosed();
/*      */     
/* 2083 */     clearWarnings();
/* 2084 */     checkNullOrEmpty(sql);
/*      */     
/* 2086 */     DmdbExecOpt execOpt = null;
/*      */     
/* 2088 */     if (this.m_ExecOpt)
/*      */     {
/* 2090 */       execOpt = this.connection.nativeSQL_ExecOpt(sql, this.process_escapes);
/* 2091 */       if (execOpt.useOrgSql()) {
/* 2092 */         sql = execOpt.getOrgSql();
/*      */       } else {
/* 2094 */         sql = execOpt.getSqlStr();
/*      */       }
/*      */     } else {
/* 2097 */       sql = this.connection.nativeSQL(sql, this.process_escapes);
/*      */     }
/* 2099 */     this.originalSql = sql;
/*      */     
/* 2101 */     transReadOnlyCheck(sql);
/*      */     
/* 2103 */     DmdbConnection_bs.execSqlNum += 1;
/*      */     
/* 2105 */     if (enableRsCache()) {
/* 2106 */       this.currentRs = DmdbCachedResultSetPool.getResultSet(this.connection.getGUID(), this.connection.getSchema(), 
/* 2107 */         this.originalSql, this);
/*      */     } else {
/* 2109 */       this.currentRs = null;
/*      */     }
/* 2111 */     if (this.currentRs != null)
/*      */     {
/* 2113 */       DmdbConnection_bs.rsCachedNum += 1;
/* 2114 */       this.dbInfo = this.currentRs.dbInfo;
/* 2115 */       return;
/*      */     }
/*      */     
/* 2118 */     int checkFlag = 0;
/* 2119 */     switch (execType)
/*      */     {
/*      */     case 2: 
/* 2122 */       checkFlag = 1;
/* 2123 */       break;
/*      */     
/*      */     case 3: 
/* 2126 */       checkFlag = 2;
/*      */     }
/*      */     
/*      */     
/* 2130 */     if ((this.m_ExecOpt) && (execOpt != null) && (!execOpt.useOrgSql()))
/*      */     {
/*      */       try
/*      */       {
/* 2134 */         this.dbInfo = directExec_Opt(execOpt);
/*      */       }
/*      */       catch (SQLException ex)
/*      */       {
/* 2138 */         if (63529 == ex.getErrorCode())
/*      */         {
/* 2140 */           sql = execOpt.getOrgSql();
/* 2141 */           this.dbInfo = directExec(this, sql, true, checkFlag);
/*      */           break label277;
/*      */         }
/* 2144 */         throw ex;
/*      */       }
/*      */       
/*      */     } else
/* 2148 */       this.dbInfo = directExec(this, sql, true, checkFlag);
/*      */     label277:
/* 2150 */     if (this.dbInfo.getHasResultSet()) {
/* 2151 */       this.resId = ((short)(this.resId + 1));
/*      */     }
/* 2153 */     getResultSetPrivate(1);
/*      */     
/* 2155 */     this.m_insertTableName = getTableNameBySql(sql);
/*      */   }
/*      */   
/*      */ 
/*      */   public boolean isClosed()
/*      */     throws SQLException
/*      */   {
/* 2162 */     return this.closed;
/*      */   }
/*      */   
/*      */   public void setPoolable(boolean poolable)
/*      */     throws SQLException
/*      */   {}
/*      */   
/*      */   public boolean isPoolable()
/*      */     throws SQLException
/*      */   {
/* 2172 */     return this.connection.getStmtPoolMaxSize() > 0;
/*      */   }
/*      */   
/*      */   public synchronized void preCompile(String sql)
/*      */     throws SQLException
/*      */   {
/* 2178 */     if (Const.TRACE_LEVEL > 0) {
/* 2179 */       DmdbLog.trace(this, "preCompile(sql)", "sql is " + sql);
/*      */     }
/* 2181 */     checkNullOrEmpty(sql);
/* 2182 */     sql = this.connection.nativeSQL(sql, this.process_escapes);
/* 2183 */     this.originalSql = sql;
/*      */     
/* 2185 */     this.dbInfo = directExec(this, sql, false, 0);
/*      */   }
/*      */   
/*      */   public synchronized void executeDirect()
/*      */     throws SQLException
/*      */   {
/* 2191 */     if (Const.TRACE_LEVEL > 0) {
/* 2192 */       DmdbLog.trace(this, "executeDirect()", "");
/*      */     }
/* 2194 */     this.dbInfo = DmdbCSI.executePrepared(this, 0);
/*      */   }
/*      */   
/*      */ 
/*      */   protected boolean enableRsCache_dbInfo()
/*      */   {
/* 2200 */     if ((GlobalControlCfg.getEnRsCache()) && (this.dbInfo.getRsCacheOffset() != 0)) {
/* 2201 */       return true;
/*      */     }
/* 2203 */     return false;
/*      */   }
/*      */   
/*      */   protected boolean enableRsCache()
/*      */   {
/* 2208 */     if (GlobalControlCfg.getEnRsCache()) {
/* 2209 */       return true;
/*      */     }
/* 2211 */     return false;
/*      */   }
/*      */   
/*      */   public String getExplain()
/*      */   {
/* 2216 */     return this.dbInfo.getExplain();
/*      */   }
/*      */   
/*      */   public void setReadBaseColName(boolean readBaseColName)
/*      */   {
/* 2221 */     this.readBaseColName = readBaseColName;
/*      */   }
/*      */   
/*      */   public boolean isReadBaseColName()
/*      */   {
/* 2226 */     return this.readBaseColName;
/*      */   }
/*      */ }


/* Location:              D:\Program Files\DBMS_20150813\jdbc\Dm7JdbcDriver17.jar!\dm\jdbc\driver\DmdbStatement_bs.class
 * Java compiler version: 2 (46.0)
 * JD-Core Version:       0.7.1
 */